Ce document a pour objectif de faire des rappels sur la neutronique à destination de la simulation. Dans une approche pédagogique, nous développerons au cours de ce document une simulation du comportement des neutrons dans un domaine. Sans que ce soit un prérequis, il peut être intéressant de se procurer la 4e monographie du CEA sur la neutronique ou le précis de neutronique de Paul Reuss.
Commençons par un élément de contexte. Les atomes, les éléments qui composent les molécules et la matière, sont eux-mêmes composés d’un noyau et d’un nuage d’électrons. Dans le contexte de notre étude, seul le noyau nous intéresse. Ce dernier est de charge positive et composé de deux catégories de particules : les neutrons et les protons. Ces derniers sont liés par la force nucléaire forte de façon très pérenne tant qu’un équilibre existe entre les neutrons et les protons. Le fait est que certains noyaux atomiques fortement déséquilibrés se brisent pour former des noyaux plus équilibrés. Ce phénomène naturel s’appelle la radioactivité et conduit à la production d’une petite quantité d’énergie cinétique lors de la désintégration nucléaire. C’est cette énergie que les physiciens nucléaires cherchent à capter et contrôler.
Pour ce faire, il est possible de volontairement déséquilibrer des noyaux en les forçant à recevoir un neutron. En effet, le neutron est neutre, ce qui lui permet de rejoindre plus simplement le noyau que le proton. Ce faisant, l’objectif d’un réacteur nucléaire est de pouvoir produire assez de neutrons pour casser assez de noyaux et produire de l’énergie cinétique, très vite convertie en énergie thermique. Enfin, pour que la réaction perdure dans le temps, il faut qu’un des produits de désintégration soit lui-même un neutron. Compte tenu de ses limitations, très peu de noyaux sont candidats : à la fois proches du déséquilibre, générateurs de neutrons et dont la désintégration est énergétique. Le plus usuel est l’uranium 235 (235 nucléons = protons + neutrons).
Si l’objectif est compris, il faut déterminer comment se comportent les neutrons dans le cœur d’un réacteur pour pouvoir le dimensionner et éviter tout accident. En France, cela demande une puissance de calcul impressionnante pour que les calculs soient fiables à toute épreuve. Nous, dans le cadre de ce document, allons approcher l’idée derrière cela sans en développer les complexités.
Le principe des simulations neutroniques est assez varié mais certains sont simples à penser. Dans cette idée, l’algorithme de Monte Carlo est d’une grande aide. En effet, comme notre expérience est très peu dépendante des cas, nous pouvons facilement simuler un tirage de certains neutrons dans le cœur et approcher statistiquement le comportement d’ensemble.
Comment développer une simulation neutronique de réacteur nucléaire par Monte Carlo accessible aux ordinateurs domestiques ?
Le premier concept à comprendre pour un tirage de neutron est celui d’histoire. Pour chaque neutron, nous devons être capables de déterminer son état à la fin d’un cycle de calcul. Ce calcul de l’état final s’appelle l’histoire.
Toute histoire neutronique débute par la naissance du neutron : il possède une position, une direction tirée et une énergie propre. La première étape de toute histoire est de positionner le neutron dans le domaine. Par la suite, quand on connaît son environnement, il est alors aisé de connaître sa probabilité d’interaction avec la matière. Cette dernière dépend de son énergie et se quantifie en cm⁻¹. C’est-à-dire que, via des tables, nous sommes capables de connaître la probabilité d’interaction du neutron pour chaque centimètre parcouru dans le domaine.
Dans le premier domaine, qui est le combustible, il existe 3 types d’interactions : la fission (le neutron casse un noyau), la capture (le neutron est capturé par le noyau) et enfin la diffusion. En additionnant les probabilités de ces interactions, on obtient la probabilité d’interaction totale par cm parcouru. Il est alors possible de connaître la distance avant interaction : nous avons la probabilité, il suffit de faire le tirage.
Pour simuler le tirage, on introduit généralement la grandeur χ (chi). Elle est comprise entre 0 et 1 de façon uniforme et, selon le modèle statistique, elle permet de remonter à la distance avant interaction par la formule :
s = -1/Σ × ln(χ)
où Σ est la section efficace macroscopique en cm⁻¹ et s la longueur du parcours en cm. (plus d’explications p.93 de la 4e monographie)
Ainsi, il est simple, par projection, de connaître le point où interagit le neutron. En effet, nous connaissons sa position, sa direction et sa distance avant interaction. La dernière étape de l’histoire est de connaître l’interaction en question. Pour ce faire, nous pouvons réutiliser χ pour déterminer quelle interaction s’est produite. Il faut comparer χ à la probabilité cumulée de chaque interaction.
Si χ < Σs / Σ, où Σs est la section efficace macroscopique de diffusion, alors le neutron est diffusé dans la matière.
Si χ > (Σs + Σc) / Σ, où Σc est la section efficace macroscopique de capture, alors le neutron provoque la fission nucléaire.
Dans les autres cas, le neutron est capturé par la matière et l’histoire se termine.
Quand les neutrons interagissent avec la matière, ils le font de façon analogue à des billes vers des cibles, et plus ils vont vite, plus la cible se réduit en taille. Cette taille, la taille de la cible, est donc analogue à une surface en cm², mais comme nous l’avons vu, nous utilisons des grandeurs en cm⁻¹. On appelle cette section la section efficace macroscopique, que nous interprétons dans notre contexte comme une probabilité spatiale d’interaction. En effet, elle est obtenue par la multiplication de la section efficace microscopique avec la densité des noyaux dans le domaine.
Si l’histoire conduit à la fission, il est simple de copier 2 à 4 neutrons dans le domaine au point d’interaction, de leur affecter de nouvelles directions, et d’attribuer l’énergie cinétique des neutrons issus de fission, à savoir environ 2 MeV.
La diffusion est plus complexe : il faut déterminer une nouvelle direction au neutron et l’énergie conservée par le neutron durant le choc. La méthode la plus simple est d’utiliser la formule du choc élastique de deux billes, avec pour masse le nombre de masse des particules. On en retient que pour une énergie initiale E0 et une déviation θ, l’énergie finale du neutron sera :
e = e0 × (A² + 2A cos(θ) + 1) / (A + 1)²
On voit donc qu’en fonction du domaine, la perte d’énergie sera très faible pour des noyaux lourds (A grand) ou très grande (A petit). Les neutrons sont donc essentiellement ralentis dans l’eau où ils entrent en collision avec l’hydrogène.
Pour calculer la présence d’un neutron dans un domaine, la façon la plus simple est de calculer une distance. Mais la grande question est : laquelle ? Si vous vous êtes posé la question, la réponse est qu’il en faut deux : une distance euclidienne et une distance “carrée” (Manhattan).
Nous avons besoin de la distance carrée pour vérifier si un neutron est dans un combustible. Il suffit d’utiliser la fonction abs pour déterminer dx et dy, et vérifier si le neutron est dans une tranche de combustible. En revanche, pour savoir si le neutron est dans l’eau, la cuve ou s’il est sorti du cœur, il est essentiel de déterminer sa distance par rapport au centre (en ignorant z dans les conditions limites implicites selon l’orientation de votre simulation).
Posons simplement :
dₑ = √(dx² + dy²), d_c = |dx| + |dy|
Moyennant quelques perfectionnements, en définissant un domaine et en calculant l’histoire de chaque neutron, on peut arriver à une approximation simple d’un réacteur nucléaire. Pour les données d’entrée, les sources ENDF/B-VII contiennent les données pour les sections efficaces microscopiques d’interaction pour de nombreux éléments, dont les trois domaines de ce petit document : U235, H1 et Fe56.
Cependant, comme ces données sont brutes, il peut être recommandé de les extrapoler par Lagrange afin d’obtenir une résolution continue en énergie. Enfin, la définition d’un domaine convergeant à faible criticité est essentielle pour éviter des temps de calcul déraisonnables. De même le placement de vos neutrons initiaux pilotera grandement la dynamique initiale.
Pour la visualisation, un simple filtre gaussien est souvent le plus esthétique, bien que peu scientifiquement pertinent.