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 :
-
- On choisit de nommer l'inconnue de vitesse
'UN' et l'inconnue de pression 'PRES'.
-
- 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
(coefficient devant le monôme
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.
-
- 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 . 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 si l'opérateur est appelé
en implicite et sinon.
- 'ZONE' DOMTOT 'OPER' 'KBBT' C1 'INCO' 'UN' 'PRES'
- avec C1=1. en implicite et -1. en explicite.
-
- 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 :
- LINE et CENTRE : Cet élément est le plus simple mais sujet
aux modes de pression parasites.
- MACRO et CENTRE : Cet élément est la version stabilisée de
l'élément précédant.
- MACRO et CENTREP1 : Cet élément est stable dans le cas de
quadrangles linéaires. Pour les triangles, il faudrait ajouter la bulle.
- 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.
- 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.
- 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