Description du jeu de données

Les algorithmes de résolution

Algorithme implicite : On doit inverser une matrice pour évaluer la concentration. Lorsqu'on résout le problème stationnaire, la matrice est constituée des contributions provenant des opérateurs KONV et LAPN associés aux termes convectif et diffusif. L'opérateur TSCA regroupe ces deux opérateurs et peut donc aussi être utilisé.

Dans le cas instationnaire, il faut ajouter aux opérateurs précédents l'opérateur DFDT afin d'ajouter à la matrice la contribution de la dérivée en temps. Le pas de temps doit être donné par l'utilisateur et n'est pas évalué automatiquement.

Algorithme explicite : Seul l'opérateur DFDT contribue à la matrice. Pour des questions de performance, cette matrice doit être simple à inverser. L'idéal serait qu'elle soit diagonale. On y arrive en condensant -- les anglophones parlent de lumping -- la matrice masse. Comme dans le cas explicite le pas de temps est soumis à des contraintes de stabilité, il est possible de laisser le code évaluer le pas de temps. Pour cela, il suffit d'indiquer le mot clef 'DELTAT' en lieu et place du pas de temps dans les arguments de DFDT. En implicite, l'utilisateur doit toujours indiquer la valeur du pas de temps.

Mise en oeuvre dans CAST3M

Pour décrire le système d'équation, on utilise l'opérateur EQEX. Après avoir créé le maillage du domaine de calcul et le modèle Navier-Stokes associé -- objets des deux premières sections de ce rapport -- on précise dans EQEX un certain nombre de paramètres. Pour cela, on fixe une valeur après un mot clef :

ITMA : Nombre de pas de temps (type ENTIER) -- ce champ est intéressant lorsque le pas de temps est calculé automatiquement afin d'éviter les calculs sans fin ;

NITER : Nombre d'itérations de point fixe à réaliser à chaque pas de temps (type ENTIER) -- à n'utiliser que dans le cas de problème non linéaire (mettre à 1 sinon) ;

OMEGA : Coefficient de relaxation utilisé dans le cas d'itérations de point fixe (type FLOTTANT) -- à n'utiliser que dans le cas où on réalise un point fixe (mettre à 1. dans le cas où NITER=1) ;

FIDT : Fréquence d'impression des informations sur le listing (type ENTIER) ;

ALFA : Abusivement appelé CFL, ce paramètre multiplie le pas de temps de stabilité trouvé par le code (type FLOTTANT) -- utilisé uniquement lorsque le pas de temps est automatiquement calculé par le code dans le cas explicite (à fixer à 1. par précaution sinon).

TFINAL : Fixe la valeur maximale de la chronologie au delà de laquelle le calcul s'arrête (type FLOTTANT).

Ainsi dans l'exemple suivant :

RV = 'EQEX' DOMTOT 'ITMA' 500 'NITER' 1 'OMEGA' 1. 'FIDT' 5000
on va résoudre un problème décrit sur le domaine DOMTOT pendant 500 pas de temps sans réaliser d'itérations de point fixe. On limite le volume des impressions sur le listing en donnant à FIDT une valeur supérieure à ITMA.

Pour décrire les équations, on opère aussi comme dans le cas de la résolution de l'équation de la chaleur. On appelle les opérateurs associés à chacun des monômes de l'équation de transport :

$ \triangleright$
On choisit de nommer l'inconnue de concentration 'CN'.

$ \triangleright$
On discrétise les termes convectif et diffusif avec l'opérateur 'TSCA' (transport d'un champ scalaire). Les arguments de cet opérateur sont le coefficient de diffusion (coefficient devant le monome $ \Delta c$ qui correspond à $ Pe^{-1}$ dans la forme adimensionnée de l'équation de transport), le vecteur vitesse, un éventuel terme source et le nom de l'inconnue transportée (ici ''CN') :

'ZONE' DOMTOT 'OPER' 'TSCA' DIF 'VITESSE' 0. 'INCO' 'CN'

$ \triangleright$
On peut en lieu et place de l'opérateur TSCAL utiliser les opérateurs LAPN, KONV et FIMP : ils discrétisent le terme diffusif, le terme convectif et le terme source. L'argument de l'opérateur LAPN est le coefficient de diffusion. Les trois arguments de l'opérateur KONV sont un coefficient multiplicateur, le nom du champ de vitesse et le coefficient de diffusion afin de pouvoir si on le souhaite décentrer le schéma numérique (méthode SUPG et SUPGDC). L'argument de l'opérateur FIMP est la densité de source :

'ZONE' DOMTOT 'OPER' 'TSCAL' DIF 'VITESSE' Q 'INCO' 'CN'

ou

'ZONE' DOMTOT 'OPER' 'LAPN' DIF 'INCO' 'CN'

'ZONE' DOMTOT 'OPER' 'KONV' COEF 'VITESSE' DIF 'INCO' 'CN'

'ZONE' DOMTOT 'OPER' 'FIMP' Q 'INCO' 'CN'

avec dans le cas présent DIF=1./Pe ; Q=0. ; COEF=1. ;

$ \triangleright$
Comme dans ce cas test il n'y a pas de terme source, il est inutile de faire appel à l'opérateur FIMP. A noter que l'opérateur FIMP permet aussi d'imposer une densité de flux en lieu et place d'une densité de source. Ce sont les éléments du modèle associé à l'opérateur qui permettent de discriminer les deux situations.

Dans le cas instationnaire, on doit aussi considérer le monôme de dérivée temporelle. C'est l'opérateur DFDT qui évalue la contribution de ce terme à la matrice et au second membre de la forme linéaire à inverser. Cet opérateur a trois arguments : un éventuel coefficient multiplicateur, le nom où est stocké l'inconnue évaluée au début du pas de temps et le pas de temps. Dans le cas où aucune itération de point fixe n'est nécessaire, à chaque pas de temps le nouvel itéré écrase l'ancien. Le nom à donner à DFDT est donc le nom générique de l'inconnue. Lorsque en explicite on souhaite calculer automatiquement le pas de temps, il suffit d'indiquer comme troisième argument le mot clef DELTAT.

'ZONE' DOMTOT 'OPER' 'DFDT' 1. 'CN' 'DELTAT' 'INCO' 'CN'

Dans le cas où une option de décentrement est sélectionnée, il faut ajouter aux arguments de DFDT la diffusion et le champ de vitesse.

Les espaces de discrétisation

Le choix de l'espace de discrétisation se fait au moment de la création du modèle NAVIER_STOKES :

LINE : Les espaces d'approximation sont linéaires (éléments dits P1 et Q1) ;

QUAF : Les espaces d'approximation sont quadratiques (éléments dits P2 et Q2).

Les conditions aux limites

Les frontières du domaine sont en partie perméables. Le fluide pénètre dans le domaine par la moitié inférieure droite et en sort par la moitié inférieure gauche.

Le champ scalaire transporté est donc imposé partout sauf en sortie où la dominance du terme convectif prévaut -- caractère hyperbolique. La concentration est donc égale à la concentration prescrite sur le contour imperméable LIMP et à l'entrée LIN du domaine. C'est la directive CLIM de l'opérateur EQEX qui permet d'imposer les conditions aux limites. On précise à la directive le nom de l'inconnue à bloquer. Si l'inconnue est scalaire, on donne le mot clef TIMP. Dans le cas d'une inconnue vectorielle, on précise la composante à l'aide des mots clefs UIMP, VIMP et WIMP.

Procédure utilisateur et post-traitement

La procédure utilisateur residu est utilisée en explicite. Elle permet de calculer le résidu durant le transitoire. Elle affiche au choix à chaque pas de temps l'évolution du résidu ou les iso-concentrations sur le domaine.

En post-traitement, nous traçons le maillage, le champ de vitesse, les iso-concentrations et une comparaison entre la solution calculée et la solution de référence.

Les procédures utilisateurs et le post-traitement doivent être adaptés à la situation traitée et subissent les évolutions du code. C'est pourquoi il vous appartient de comprendre les exemples fournis afin de pouvoir les adapter à vos futurs travaux.

traduction 2003-11-04