Contexte général
SCORPIO repose sur la notion de volume élémentaire représentatif (VER). Un VER désigne la plus petite zone à laquelle on choisit d'affecter des variables intensives ou extensives. Cela peut être aussi bien un composant d'un circuit, si l'on est dans une approche 0D, qu'une cellule d'un maillage. Un VER sera soumis à des phénomènes couplés de Transport et de Transfert (cf. figure 1).
Les phénomènes de transfert sont ici les changements chimiques ou thermodynamiques (réactions chimiques inter- et intra-phasiques, changement de phase d'une espèce) locaux de la matière et les phénomènes de transport déplacent la matière sans la modifier ou encore la chaleur. Dans ce contexte, on peut envisager les phénomènes d'activation neutronique ou de décroissance radioactive comme des transferts, si on choisit de distinguer des espèces chimiques en fonction de leur isotope.
Espèces et phases selon SCORPIO
SCORPIO considère quatre types de phase : liquide aqueuse, liquide organique, solide et gazeuse. Chaque VER peut contenir un échantillon quelconque de phases en contact. Ainsi, chaque espèce chimique sera déclarée comme étant aqueuse, organique, solide ou gazeuse.
Si l'on souhaite considérer une même espèce chimique sous différentes phases, il est impératif de les distinguer de manière formelle pour SCORPIO. Formellement l'eau liquide et la glace seraient, par exemple, considérées comme deux « espèces », au sens de SCORPIO, bien que ce ne soit pas le cas au sens rigoureux du terme.
De même, si l'on souhaite différencier un même composé chimique apparaissant selon différents isotopes, SCORPIO les distinguera comme des espèces différentes. Cet abus de langage a l'avantage de rassembler différents phénomènes sous un formalisme mathématique unique.
Chaque phase sera également définie par les espèces qui la composent. Dans le cas d'une phase liquide, on distinguera une espèce qui représentera le solvant, distincte des autres, qui seront les solutés. À chaque phase peut également être associée une loi de densité.
L'utilisateur doit définir les espèces chimiques et les phases qu'il souhaite considérer. Aucun ajout par défaut n'est réalisé par SCORPIO, ce qui permet de restreindre la taille du système à résoudre au strict minimum.
Système algébro-différentiel
SCORPIO résout un système composé d'équations différentielles en temps et d'équations algébriques devant être vérifiées à chaque instant de la simulation. Un système algébro-différentiel résolu par SCORPIO sera, au plus, composé des équations suivantes :
— Conservation de la matière
— Conservation de la chaleur
— Lois de densité des phases
— Lois de transferts à l'équilibre
— Lois de transferts cinétiques
SCORPIO considère, au plus, les variables suivantes :
— molarités ( + logarithmes décimaux des molarités )
— molalités (pour les espèces en phase liquide uniquement ; + logarithmes décimaux des molalités )
— masses
— activités ( + logarithmes décimaux des activités )
— quantités de matière en nombre de moles
— température
— volumes des phases
— porosité
— taux de saturation
— débits volumiques
— débits massiques de solvant
— vitesses des phases
SCORPIO ne contient aucune physico-chimie en propre : c'est-à-dire qu'on n'y trouvera aucune constante physique, aucune donnée paramétrique relative à telle ou telle grandeur. SCORPIO ayant l'ambition d'être un outil adaptable à une modélisation spécifique de l'utilisateur, éventuellement confidentielle, il est conçu pour résoudre la physico-chimie qu'on lui donne, mais n'est pas orienté vers une modélisation particulière. Il propose seulement un cadre de résolution pour l'utilisateur.
En cohérence avec cette démarche, SCORPIO peut être utilisé indépendamment de toute base de données. Dans cette approche, l'utilisateur peut imposer lui-même les caractéristiques des espèces et des lois chimiques qu'il souhaite utiliser. Il peut notamment faire appel, par exemple pour une loi cinétique ou une loi d'équilibre, à des expressions analytiques mathématiques originales, sans avoir à modifier le code pour cela. En effet, SCORPIO utilise le parser de TRUST, qui permet d'interpréter n'importe quelle fonction mathématique gérable par le C++, en fonction des variables du système. L'utilisateur peut donc se placer dans le cadre de sa modélisation spécifique, sans avoir à s'adresser aux développeurs du code ou à partager ses données confidentielles.
Exemple d'utilisation couplée avec la thermo-hydraulique : simulation du colmatage du passage folié d'un générateur de vapeur
Voici rapidement un exemple d'utilisation couplée de TrioCFD et SCORPIO : la mise en évidence d'un bourrelet apparaissant au niveau du passage folié d'une plaque entretoise, dans un générateur de vapeur de REP (réacteur à eau pressurisée). L'une des causes possibles de ce colmatage peut être la précipitation du fer présent dans l'eau du circuit secondaire en hématite (cf. figure 3).
Il s'agit donc d'un phénomène chimique inter-phasique et conduisant à la formation d'un précipité qui, en modifiant la géométrie du passage folié, rétro-agit sur la thermo-hydraulique du générateur de vapeur. TrioCFD transmet la vitesse et la température à SCORPIO, qui en retour évalue le volume de précipité formé, interprété comme une variation de la porosité et le transmet à TrioCFD pour un recalcul de la vitesse et de la température, toutes deux impactées par cette variation.
On a donc utilisé deux maillages différents, comme présenté sur la figure 4 et la figure 5 montre l'impact de la formation d'un bourrelet sur la vitesse.