• Aucun résultat trouvé

3. Modélisation thermo-hydraulique

3.4. Méthodes numériques

La formulation mathématique exposée dans le paragraphe précédent met en évidence la forte non-linéarité du problème traité. Deux algorithmes de résolutions ont été développés. Dans chacun d'entre eux les équations (3.13) et (3.19) sont résolues séquentiellement à l'aide de la procédure TRANGEOL implémentée dans le code de calcul Cast3M (voir paragraphe 3.4.2).

3.4.1. Présentation du code Cast3M

Le code de calcul Cast3M est développé au sein du Commissariat à l'Énergie Atomique et aux Énergies Alternatives (CEA) depuis une trentaine d'années. À l'origine destiné à la modélisation de problèmes de mécaniques des structures dans le secteur du nucléaire, Cast3M permet aujourd'hui de résoudre différents types d'équations. De nombreuses autres fonctionnalités ont été développées pour le calcul de problèmes de mécanique des fluides, d’hydrogéologie, d’électromagnétisme ou encore de thermique (cf. le site www-cast3m.cea.fr).

Écrire sous Cast3M revient à écrire des instructions décomposées en opérations élémentaires via une syntaxe précise en langage Gibiane. Ce langage possède tous les attributs d'un langage informatique orienté objet : typage dynamique des données, expressions conditionnelles, expressions répétitives, traitement des exceptions, récursivité, possibilité d'écrire des procédures, etc. Le gibiane est un macrolangage destiné au modélisateur et se veut simple d’utilisation.

Les instructions font appel à des opérateurs codés en langage Esope, un langage de développement proche du langage Fortran. Le code Cast3M n’est pas une boîte noire : tout utilisateur peut, si besoin est, modifier entièrement un opérateur déjà programmé en Esope. Une opération élémentaire se généralise sous la forme :

OBJET2 = OPERATEUR OBJET1;

Directive Gibiane

On peut aisément condenser plusieurs directives élémentaires en les combinant :

$

%

OBJET2 = OPERATEUR2 OPERATEUR1 OBJET1 ;

La nature des objets manipulés est variable et, en complément des objets classiques des codes orientés objet, une bibliothèque d’objets propres au code Cast3M est disponible : maillage, modèle, rigidité.

Le code Cast3M est donc un code de programmation et de modélisation. On désignera par « jeu de données » un code complet en langage Gibiane permettant de résoudre un problème physique. La structure d’un jeu de données suit généralement l’organisation d’un calcul de modélisation classique, selon les trois étapes suivantes:

- La définition du modèle mathématique, constitué des équations gouvernant le système, de

la géométrie et du maillage, des conditions initiales et aux limites, des propriétés matérielles etc.

- L’écriture du jeu de données : la construction du maillage, la discrétisation des équations, la

prise en compte des données caractérisant le système, le calcul.

- Le post-traitement qui correspond à l’exploitation numérique et graphique des résultats du

calcul.

Cependant, la structure adoptée dans Cast3M offre la possibilité d'élaborer des procédures qui sont, en quelque sorte, des opérateurs de niveau supérieur, appelant à leur tour des opérateurs élémentaires. On peut voir une procédure comme l’isolement d’une partie d’un jeu de données. Cette structuration a plusieurs avantages :

- Elle améliore la lisibilité des codes et permet une standardisation des opérations.

- Elle évite la répétitivité des jeux de données et donc l’inflation des lignes de code.

- Elle limite les erreurs de programmation une fois la procédure validée.

-

Les opérateurs et procédures utilisés lors de cette thèse sont ceux développés pour la

résolution des équations de transport et des modèles de Darcy. La méthode numérique généralement utilisée sous Cast3M pour traiter des problèmes hydrogéologiques est celle des Éléments Finis Mixtes Hybrides (EFMH). Cette méthode permet la résolution simultanée de l’équation de Darcy et de l’équation de conservation de la masse. Par construction, elle permet d’assurer la continuité des flux aux interfaces entres mailles adjacentes et donc de respecter la conservation de la masse. La méthode des Volumes Finis (VF) a été implémentée plus récemment dans Cast3M. Comme nous le verrons par la suite, c’est cette dernière qui trouvera à nos yeux le plus d’avantages (paragraphe 3.4.2, et articles 1 et 2, paragraphes 3.6.2 et 3.7.2).

3.4.2. Algorithmes de résolution

Algorithme séquentiel

Le premier algorithme est un simple algorithme séquentiel (figure 3.1). Dans un premier temps, on résout l’équation de transport de chaleur Les paramètres thermodynamiques sont alors mis à jour car ils sont plus sensibles aux variations de température qu’aux variations de pression - cette dernière ne s’écarte que peu de la pression hydrostatique -. Finalement, on résout l'équation de continuité Éq. (3.13) permettant de connaître le champ de pression au temps t, et on en déduit le champ de vitesse à l'aide de l'équation de Darcy Éq. (3.10).

Figure 3.1: Algorithme séquentiel à pas de temps fixe.

Le pas de temps est fixe tout au long du calcul et doit être suffisamment petit pour éviter des oscillations numériques (non respect du principe du maximum) pouvant conduire à des résultats aberrants.

Algorithme de Picard

Le second algorithme est un algorithme de Picard implicite [Bernard-Michel et Genty, 2006]. Dans cette méthode, de la même manière que pour l'algorithme séquentiel non itératif précédemment présenté, on résout d'abord l’équation de transport de chaleur, puis on met à jour les paramètres thermodynamiques, et enfin on résout l'équation de continuité permettant de connaître le champ de pression au temps t (figure 3.2).

Figure 3.2 : Algorithme de Picard.

Après cette première étape, on vérifie les critères suivants :

Tni+1 Tni Tni < T (3.22a) Pni+1 Pn i Pni < P (3.22b)

où ,T et ,P sont des constantes suffisamment petites (en général, on prend ,T = 10-3 et ,P = 10-3)

Si ces deux relations sont vérifiées à l'itération i+1, le système est considéré comme ayant

convergé : on met à jour les champs de valeurs avec Tn+1=Tni+1 et Pn+1=Pni+1 . Si les relations

à nouveau jusqu'à les vérifier. La méthode de Picard n'est valable que pour des systèmes à évolution monotone.

Il est possible de choisir, lors de l'initialisation du calcul ou de sa reprise après enregistrement des résultats au temps t, l'un ou l'autre des algorithmes de résolution.

Utilisation de la procédure TRANGEOL de Cast3M

TRANGEOL est une procédure du code de calcul Cast3M qui permet de résoudre l'équation générale du transport diffusif-convectif transitoire :

!

.

TR TR TR TR

C

D

C

U C

SOURCE

t

"

#

$ %

% &

'

#

!

!

!

. (3.23)

Notons ici que les équations (3.13) et (3.19) que nous cherchons à résoudre peuvent se mettre sous la forme générique de l’Éq. (3.23). Ainsi, les termes de l'équation de continuité (3.13) correspondent à : - TR! "# , (3.24) -

C=P

, (3.25) - DTR!" $$k % , (3.26) - U&TR!&0 , (3.27) - 2 . TR k g T SOURCE µ t

(

")(

* + # , - $ &%, -' # . / ! ! . (3.28)

De même, pour l'équation de conservation de l'énergie (3.19), on retrouve :

- TR!'" c(eq, (3.29)

- C!T, (3.30)

- DTR= eq , (3.31)

- U&TRC!'" c(lT &U, (3.32)

- SOURCETR= 0 . (3.33)

Le travail de l'utilisateur consiste alors à utiliser la procédure TRANSGEOL comme une « boîte noire », après avoir correctement défini les différents « objets » dont elle a besoin pour résoudre l’équation (3.23).

Au sein de l'opérateur KRES qu'utilise TRANGEOL pour l'inversion des systèmes matriciels linéaires, plusieurs méthodes d'inversion sont disponibles. S'appuyant sur un rapport interne du CEA [Bernard-Michel, 2004], notre choix s'est porté sur le solveur BiCGSTAB. Bien que ce solveur utilise une méthode itérative ne garantissant pas toujours une décroissance du résidu au cours des itérations successives, les tests effectués sur les calculs de sûreté et la qualification Alliances ont

été satisfaisants avec ce solveur et ont montré des performances 2 à 3 fois supérieures à celles obtenues avec le solveur GMRES, dont la méthode est plus robuste [Bernard-Michel, 2004]. Par ailleurs, nous utilisons dans tous les calculs le préconditionneur matriciel ILU0.

Il est important de noter que l’opérateur KRES n’est cependant pas parallélisé ; cela aura des conséquences non négligeables sur les temps de calculs.

Deux méthodes de discrétisations ont été implémentées dans la procédure TRANGEOL : la méthode des éléments finis mixtes hybrides (EFMH) et la méthode des volumes finis (VF). Les algorithmes de discrétisation et de résolutions implémentés dans TRANGEOL sont décrits en détails dans [Dabbene, 1993; 1994; 1995; 1998] pour les EFMH et dans [Le Potier, 2003; Bernard-

Michel, 2004] pour les VF.

Ces deux méthodes assurent la continuité des flux aux faces des mailles. Cependant, plusieurs critères nous ont amenés à préférer les volumes finis. Les VF sont en effet plus performants en termes de temps de calculs sur les maillages de type quadrangulaire qui seront les seuls à être utilisés lors de cette thèse [Bernard-Michel, 2004]. Cette méthode est particulièrement bien adaptée pour résoudre des problèmes de convection et pour des calculs transitoires de diffusion pure. Par ailleurs, elle tolère de fortes hétérogénéités de vitesse, le maillage devant tout de même rester régulier afin d’assurer la monotonie pour la discrétisation du Laplacien de la relation générale (3.23) [Bernard-Michel, 2004].

L’algorithme utilisé dans TRANGEOL [Le Potier, 2003; Bernard-Michel, 2004] est une version étendue aux cas des quadrangles en 2D et des hexaèdres, des prismes, des tétraèdres et des pyramides en 3D, version issue du travail d’une équipe norvégienne sur la méthode des volumes finis dédiée à l’origine aux maillages triangulaires 2D [Aavatsmark et al., 1998a; b].