Description du jeu de données

Les algorithmes de résolution

Algorithme implicite : Les équations en vitesse et pression sont discrétisées et résolues simultanément.

Méthode de projection semi-explicite : Les équations en vitesse et pression sont découplées : elles sont au sein d'un pas de temps résolues les unes après les autres. L'équation de quantité de mouvement est résolue explicitement si bien que le schéma est stable sous conditions -- le pas de temps est limité par des contraintes de stabilités linéaires (conditions sur le nombre CFL et le nombre de Fourier). La pression est solution d'un pseudo-Laplacien. L'algorithme semi-explicite est la variante la plus explicite des méthodes de projection.

Méthode de projection semi-implicite : Les équations en vitesse et pression sont, comme précédemment, découplées. Cependant, elles sont résolues par une approche implicite. De ce fait, le pas de temps n'est pas soumis à des contraintes de stabilités linéaires. Pour obtenir une solution physique aux équations découplées, il doit cependant rester dans des limites raisonnables.

Mise en oeuvre dans CAST3M

Pour décrire le système d'équation, on utilise comme pour la description d'une équation scalaire l'opérateur EQEX. Après avoir créé le maillage du domaine de calcul et le modèle Navier-Stokes associé -- cf les deux premiers TP -- 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 n'est pas imposé par l'utilisateur (voir la notice de l'opérateur DFDT).

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 du calcul 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 du problème de transport d'un champ scalaire passif par diffusion et convection. On appelle les opérateurs associés à chacun des monômes des équations :

$ \triangleright$
On choisit de nommer l'inconnue de vitesse 'UN' et l'inconnue de pression 'PRES'.

$ \triangleright$
On discrétise l'équation de quantité de mouvement via l'opérateur 'NS'. Dans le cas présent, l'argument de cet opérateur est le coefficient de viscosité cinématique $ \nu$ (coefficient devant le monôme $ \Delta\vec{u}$ lorsque celui devant le monôme de dérivée temporelle (opérateur DFDT) est égal à 1.) :

'ZONE' DOMTOT 'OPER' 'NS' NU 'INCO' 'UN'

avec NU=1./Re en adimensionné. L'opérateur NS ne discrétise ni le monôme de dérivée en temps de la vitesse ni le monôme en pression. Ce sont les opérateurs DFDT et KBBT qui s'en chargent.

$ \triangleright$
On discrétise les termes en pression dans un troisième temps. L'opérateur KBBT discrétise le terme en gradient de pression de l'équation de quantité de mouvement (terme qui n'est pas discrétisé par l'opérateur NS) ainsi que le terme en divergence $ \vec{u}$. Dans un contexte de résolution implicite, c'est cet opérateur qui couple les inconnues de vitesse et de pression. En méthode de projection, les matrices associées aux opérateurs gradient et divergence permettent d'évaluer le pseudo-Laplacien en pression. L'argument de cet opérateur est un éventuel coefficient multiplicateur. Ce coefficient vaut $ 1.$ si l'opérateur est appelé en implicite et $ -1.$ sinon.

'ZONE' DOMTOT 'OPER' 'KBBT' C1 'INCO' 'UN' 'PRES'
avec C1=1. en implicite et -1. en explicite.

$ \triangleright$
Dans le cas semi-explicite, le pseudo-Laplacien en pression est calculé directement par l'opérateur PRESSION et les éléments relatifs à la pression sont construits à l'aide de l'opérateur EQPR (pour équation en pression). La table ainsi créée est rangée dans la table associée à l'opérateur EQEX à l'indice PRESSION.

RV = 'EQEX' ... ;
RVP = 'EQPR' DOMTOT 'KTYPI' 1 'ZONE' DOMTOT 'OPER' 'PRESSION' 0. ;
RV . 'PRESSION' = RVP ;

Les espaces de discrétisation

Le choix des espaces de discrétisation se fait en deux étapes. On indique dans l'objet modèle Navier-Stokes l'espace de discrétisation choisi pour les inconnues autres que la pression. On dispose des choix suivants :

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

MACRO : Les éléments linéaires sont stabilisés par la technique des macro-éléments, les espaces d'approximation étant linéaires sur chaque micro-élément ;

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

On indique l'espace de discrétisation de la pression après la directive OPTI de l'opérateur EQEX afin que les opérateurs de discrétisation puissent travailler :

CENTRE : La pression est constante sur chaque élément ;

CENTREP1 : La pression est linéaire sur chaque élément et discontinue d'un élément à ses voisins ;

MSOMMET : La pression est linéaire sur chaque élément et continue d'un élément à ses voisins.

Comme nous l'avons vu en cours, tous les couples vitesse/pression ne sont pas judicieux. Six possibilités vous sont offertes via la variable ICHOI :

  1. LINE et CENTRE : Cet élément est le plus simple mais sujet aux modes de pression parasites.

  2. MACRO et CENTRE : Cet élément est la version stabilisée de l'élément précédant.

  3. MACRO et CENTREP1 : Cet élément est stable dans le cas de quadrangles linéaires. Pour les triangles, il faudrait ajouter la bulle.

  4. QUAF et CENTREP1 : En augmentant le degré d'approximation en vitesse on gagne en précision mais au prix d'un temps de calcul plus important. En effet, le couplage entre les degrés de liberté en vitesse augmente d'où des matrices moins creuses qu'en linéaire.

  5. LINE et MSOMMET : Bien que sujet aux modes de pression parasites, cet élément permet d'approximer linéairement et continûment vitesses et pressions pour un coût raisonnable.

  6. QUAF et MSOMMET : Pour ceux qui souhaitent de la stabilité, de la précision et des pressions continues. A noter que par rapport au choix CENTREP1, le choix MSOMMET diminue la taille du problème en pression (continuité des pressions).

Les couples LINE/CENTREP1 et QUAF/CENTRE sont sans objets.

Le mot clef associé à l'espace de discrétisation en vitesse est un des arguments du modèle Navier-Stokes. Il sert aussi à indiquer l'espace de discrétisation des inconnues autres que la pression. Celui associé à la pression intervient dans les options de l'opérateur EQEX afin que les opérateurs de discrétisation puissent travailler.

ATTENTION : Tous les éléments vitesse/pression ne sont pas disponibles avec tous les algorithmes. Ainsi, on se contentera d'éléments linéaires en semi-explicite (i.e. pas de QUAF en semi-explicite); de pressions discontinues en implicite (i.e. pas de MSOMMET en implicite). Un jour viendra ... peut-être.

Les conditions aux limites

Comme dans le cas scalaire la directive CLIM de l'opérateur EQEX permet d'imposer les conditions aux limites.

Dans le cas où la pression est continue, il faut l'imposer en sortie afin de ne pas tomber sur une indétermination. C'est pourquoi dans ce cas on fixe la pression à 0 en un point du support de l'inconnue de pression.

Dans le cas où le domaine est fermée, il faut aussi imposer la pression en un point afin de lever l'indétermination occasionnée par la contrainte d'incompressibilité sur la frontière du domaine.

Les utilitaires

Deux procédures utilisateurs sont fournies en tête du jeu de données : attac et residu. Elles permettent respectivement de calculer le point de ré-attachement et l'évolution du résidu en vitesse durant le transitoire. Cette dernière procédure est appelée à chaque pas de temps et l'évolution du résidu en vitesse est tracé si on l'a demandé.

La procédures attac est appelée par la procédure residu ainsi qu'au moment du post-traitement à l'issue du calcul. En plus du point de ré-attachement, nous post-traitons la vitesse et la pression.

Les procédures utilisateurs et le post-traitement doivent souvent être adaptés à la situation traitée, aux é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